﻿// Open Source: MIT License (http://www.opensource.org/licenses/mit-license.php)
// Project: YoProgramo.NET (http://code.google.com/p/yoprogramo/)
// Autor: Fabian Figueredo (info@fabianfigueredo.com.ar)
// Blog: blog.yoprogramo.net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace YoProgramo.Domain.Core.Interfaces
{
    public interface IUserRepository : IRepository<IUser, long> {
        IUser FindByUserName(string userName);

        IUser FindByUserNameAndPassword(string userName, string password);

        IUser FindByEmail(string email);        

        long? FindScoreByUserName(string userName, DateTime startTimestamp, DateTime endTimestamp);

        IList<IUser> FindTop(DateTime startTimestamp, DateTime endTimestamp, int start, int max);

        IList<IUser> FindAll(int start, int max);

        ICollection<string> FindIPAddresses(Guid id);
    }
}